<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class User_model extends CI_Model{
    var $logged = 0; //Kiểm tra xem đăng nhập hay chưa
    var $u_id = -1;
    var $u_pass = '';
    var $u_name = '';
    var $u_fullname= '';
    var $u_mail= '';
    var $u_role = '';
    public function __construct(){
        parent::__construct();
        //Load database driver
        $this->load->database();
        
        //Session
        $this->load->library('session');
        $userdata = $this->session->all_userdata();
        if(isset($userdata['logged']) && $userdata['logged']){
            $this->u_id = $userdata['u_id'];
            $this->u_role = $this->checkAdmin();
        }
        else{
            //chưa làm
            //nếu chưa đăng nhập thì chuyển đến trang đăng nhập
        }
    }
    
    //Kiểm tra user đăng nhập
    public function checkUser($name,$pass){
        //Xử lý password
        $this->load->helper('string_helper');
        $pass = md5(strip_quotes($pass));
        //câu truy vấn
        $this->db->select('adu_id, adu_name,adu_fullname,adu_mail,adu_role');
        $query = $this->db->get_where('admin_users',array('adu_name'=>$name,
                                                          'adu_pass'=>$pass,
                                                          'adu_active'=>1
                                                          ));
        //Nếu tồn tại user thì set các giá trị cho user
        if($query->num_rows() > 0){
            $this->logged = 1;
            $user_tmp = $query->row();
            $this->u_id = $user_tmp->adu_id;
            $this->u_name = $user_tmp->adu_name;
            $this->u_mail = $user_tmp->adu_mail;
            $this->u_fullname = $user_tmp->adu_fullname;
        }
        else{
            $this->logged = 0;
        }
        
        //Lưu thông tin của user
        $user_data = array(
                           'u_id'=>$this->u_id,
                           'u_name'=>$this->u_name,
                           'u_mail'=>$this->u_mail,
                           'u_fullname'=>$this->u_fullname,
                           'logged'=>$this->logged,     
                        );
        //Set biến session
        $this->session->set_userdata($user_data);
    }
    
    //Kiểm tra quyền sử dụng module
    public function checkPermission($module){
        //Lấy id của module
        $this->db->select('mod_id');
        $query = $this->db->get_where('modules',array('mod_control'=>$module));
        if($query->num_rows()){
            $module_id = $query->row()->mod_id;
            //Lấy quyền của user về module này
            $this->db->select('adu_edit,adu_delete,adu_add');
            $query = $this->db->get_where('admin_users_right',array('adu_admin_id'=>$this->u_id,
                                                                    'adu_mod_id'=>$module_id));
                                                                    
            //Mảng quyền sử dụng
            if($query->num_rows()){
                $permission = array(
                        'admin'=>$this->u_role,
                        'add'=>$query->row()->adu_add,
                        'edit'=>$query->row()->adu_edit,
                        'delete'=>$query->row()->adu_delete
                        );
                return $permission;    
            }
            
        }
        else return false;
        
    }
    protected function checkAdmin(){
        $this->db->select('adu_role');
        $query = $this->db->get_where('admin_users','adu_id = '.$this->u_id);
        if($query->num_rows()){
            return $query->row()->adu_role;
        }
        else return false;
    }
    public function getRole(){
        return $this->u_role;
    }
}
?>